home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / RIncludes / ImageCodec.r < prev    next >
Encoding:
Text File  |  1998-02-12  |  6.3 KB  |  226 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        ImageCodec.r
  3.  
  4.      Contains:    QuickTime Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 3.0
  7.                  Release:    Universal Interfaces 3.1
  8.  
  9.      Copyright:    © 1990-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18.  
  19. #ifndef __IMAGECODEC_R__
  20. #define __IMAGECODEC_R__
  21.  
  22. #ifndef __CONDITIONALMACROS_R__
  23. #include "ConditionalMacros.r"
  24. #endif
  25.  
  26. #include "Components.r"
  27. #include "ImageCompression.r"
  28. #define kParameterTitleName             'name'
  29. #define kParameterTitleID                 1
  30.  
  31. #define kParameterWhatName                 'what'
  32. #define kParameterWhatID                 1
  33.  
  34. #define kParameterRepeatableName         'pete'
  35. #define kParameterRepeatableID             1
  36.  
  37.  
  38.     #define kParameterRepeatableTrue    long { "1" }
  39.     #define kParameterRepeatableFalse    long { "0" }
  40.  
  41. #define kParameterAlternateCodecName     'subs'
  42. #define kParameterAlternateCodecID         1
  43.  
  44. #define kParameterSourceCountName         'srcs'
  45. #define kParameterSourceCountID         1
  46.  
  47. #define kParameterDependencyName         'deep'
  48. #define kParameterDependencyID             1
  49.  
  50.  
  51.     #define kParameterListDependsUponColorProfiles    OSType { "prof" }
  52.     #define kParameterListDependsUponFonts            OSType { "font" }
  53.  
  54. #define kParameterEnumList                 'enum'
  55. #define kParameterAtomTypeAndID         'type'
  56.  
  57.         #define kNoAtom                 OSType { "none" }
  58.         #define kAtomNoFlags             long { "0" }
  59.         #define kAtomNotInterpolated     long { "1" }
  60.         #define kAtomInterpolateIsOptional     long { "2" }
  61.  
  62. #define kParameterDataType                 'data'
  63.  
  64.         #define kParameterTypeDataLong         long { "2" }
  65.         #define kParameterTypeDataFixed     long { "3" }
  66.         #define kParameterTypeDataRGBValue     long { "8" }
  67.         #define kParameterTypeDataDouble     long { "11" }
  68.         #define kParameterTypeDataText         OSType { "text" }
  69.         #define kParameterTypeDataEnum        OSType { "enum" }
  70.         #define kParameterTypeDataBitField     OSType { "bool" }
  71.         #define kParameterTypeDataImage        OSType { "imag" }
  72.  
  73. #define kParameterDataRange             'rang'
  74. #define kParameterDataBehavior             'ditl'
  75.  
  76.     // items edited via typing
  77.         #define kParameterItemEditText         OSType { "edit" }
  78.         #define kParameterItemEditLong         OSType { "long" }
  79.         #define kParameterItemEditFixed     OSType { "fixd" }
  80.         #define kParameterItemEditDouble     OSType { "doub" }
  81.  
  82.     // items edited via control(s)
  83.         #define kParameterItemPopUp         OSType { "popu" }
  84.         #define kParameterItemRadioCluster     OSType { "radi" }
  85.         #define kParameterItemCheckBox         OSType { "chex" }
  86.         #define kParameterItemControl         OSType { "cntl" }
  87.         
  88.     // special user items
  89.         #define kParameterItemLine             OSType { "line" }
  90.         #define kParameterItemColorPicker     OSType { "pick" }
  91.         #define kParameterItemGroupDivider    OSType { "divi" }
  92.         #define kParameterItemStaticText    OSType { "stat" }
  93.         #define kParameterItemDragImage        OSType { "imag" }
  94.  
  95.  
  96.  
  97.         // flags valid for lines and groups
  98.         #define kGraphicsNoFlags             long { "0" }
  99.         #define kGraphicsFlagsGray             long { "1" }
  100.  
  101.         // flags valid for groups
  102.         #define kGroupNoFlags                         long { "0" }
  103.         #define kGroupAlignText                     long { "65536" }
  104.         #define kGroupSurroundBox                     long { "131072" }
  105.         #define kGroupMatrix                         long { "262144" }
  106.         #define kGroupNoName                        long { "524288" }
  107.         #define kGroupSurroundWithGray                long { "131073" }
  108.         #define kGroupSurroundWithGrayAlign            long { "196609" }
  109.         #define kGroupSurroundWithGrayNoName        long { "655361" }
  110.         #define kGroupSurroundWithGrayAlignNoName    long { "720897" }
  111.         
  112.         // flags valid for popup/radiocluster/checkbox/control
  113.         #define kDisableControl            long { "1" }
  114.         #define kDisableWhenNotEqual    long { "1" }
  115.         #define kDisableWhenEqual        long { "17" }
  116.         #define kDisableWhenLessThan    long { "33" }
  117.         #define kDisableWhenGreaterThan    long { "49" }
  118.  
  119.         // flags valid for popups
  120.         #define kPopupStoreAsString        long { "65536" }
  121.  
  122. #define kParameterDataUsage             'use '
  123.  
  124.         #define kParameterUsagePixels        OSType { "pixl" }
  125.         #define kParameterUsageRectangle    OSType { "rect" }
  126.         #define kParameterUsagePoint        OSType { "xy  " }
  127.         #define kParameterUsage3DPoint        OSType { "xyz " }
  128.         #define kParameterUsageDegrees        OSType { "degr" }
  129.         #define kParameterUsageRadians        OSType { "rads" }
  130.         #define kParameterUsagePercent        OSType { "pcnt" }
  131.         #define kParameterUsageSeconds        OSType { "secs" }
  132.         #define kParameterUsageMilliseconds    OSType { "msec" }
  133.         #define kParameterUsageMicroseconds    OSType { "µsec" }
  134.         #define kParameterUsage3by3Matrix    OSType { "3by3" }
  135.  
  136. #define kParameterDataDefaultItem         'dflt'
  137. #define kParameterInfoLongName             '©nam'
  138. #define kParameterInfoCopyright         '©cpy'
  139. #define kParameterInfoDescription         '©inf'
  140. #define kParameterInfoWindowTitle         '©wnt'
  141. #define kParameterInfoPicture             '©pix'
  142. #define kParameterInfoIDs                 1
  143.  
  144.  
  145. type 'cdec' {
  146.     hex string;
  147. };
  148.  
  149.  
  150. type 'cdci' {
  151.     pstring[31];
  152.     hex integer    version;
  153.     hex integer    revlevel;
  154.     hex longint    vendor;
  155.     hex longint    decompressFlags;
  156.     hex longint    compressFlags;
  157.     hex longint    formatFlags;
  158.     byte        compressionAccuracy;
  159.     byte        decompressionAccuracy;
  160.     integer        compressionSpeed;
  161.     integer        decompressionSpeed;
  162.     byte        compressionLevel;
  163.     byte        resvd;
  164.     integer        minimumHeight;
  165.     integer        minimumWidth;
  166.     integer        decompressPipelineLatency;
  167.     integer        compressPipelineLatency;
  168.     longint        privateData;
  169. };
  170.  
  171.  
  172. #define    compressorComponentType            'imco'
  173. #define    decompressorComponentType        'imdc'
  174.  
  175.  
  176. /* Resource type used for the creation of parameter description atoms */
  177. type 'atms' {
  178.     longint;    // root atom count
  179.     
  180.     array AtomArray {
  181.         literal longint;        // atomType
  182.         longint;                // atomID
  183.         longint noChildren = 0;    // children
  184.         longint =  $$CountOf(AtomData);
  185.         array AtomData {
  186.             switch {
  187.             case long:
  188.                 key literal longint = 'long';
  189.                 pstring;            // data
  190.             case short:
  191.                 key literal longint = 'shrt';
  192.                 pstring;            // data
  193.             case noMininumFixed:
  194.                 key literal longint = 'nmiF';
  195.                 pstring = "";        // data
  196.             case noMaximumFixed:
  197.                 key literal longint = 'nmaF';
  198.                 pstring = "";        // data
  199.             case noMininumDouble:
  200.                 key literal longint = 'nmiD';
  201.                 pstring = "";        // data
  202.             case noMaximumDouble:
  203.                 key literal longint = 'nmaD';
  204.                 pstring = "";        // data
  205.             case fixed:
  206.                 key literal longint = 'fixd';
  207.                 pstring;            // data
  208.             case double:
  209.                 key literal longint = 'doub';
  210.                 pstring;            // data
  211.             case string:
  212.                 key literal longint = 'str ';
  213.                 pstring;            // data
  214.             case OSType:
  215.                 key literal longint = 'osty';
  216.                 pstring;            // data
  217.             };
  218.             
  219.         };
  220.     };
  221. };
  222.  
  223.  
  224. #endif /* __IMAGECODEC_R__ */
  225.  
  226.